package com.wn.excel.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;

import java.lang.reflect.Field;

/**
 * @FileName: ReflectUtils
 * @Description: 反射工具类
 * @Author: MaWenHao
 * @Created: 2020/3/3 - 11:37
 * @Version: V1.0
 * @Company: 东方微银科技（北京）有限公司
 */
@Slf4j
public class ReflectUtils {

    private ReflectUtils() {

    }

    /**
     * 根据熟悉名通过反射获取值
     * @param fieldName
     * @param obj
     * @return
     */
    public static Object getFieldValue(String fieldName, Object obj) throws IllegalAccessException {
        // 得到class对象
        Class<?> cls = obj.getClass();
        // 暴力获取属性值
        Field[] fields = cls.getDeclaredFields();
        for (Field field : fields) {
            String name = field.getName();
            if (ObjectUtils.nullSafeEquals(name, fieldName)) {
                field.setAccessible(true);
                Object value = field.get(obj);
                return value;
            }
        }
        return null;
    }

}
